package de.akabahn.ebd.stw.zdxfc.prs.tco;

import org.apache.log4j.Logger;


/**
 * Main-Klasse der Anwendung, Start des TCO<br>
 * <br>
 * Uebergabeparameter:<br>
 * <ul>
 * <li><code>-demo</code>: Starten des TCO im Demo-Mode (ohne DBD-Anbindung)</li>
 * </ul>
 * 
 * @author Peter Eimann
 * @since 1.0
 * @version 1.1
 * @see ZDXFCTcoMain
 */
public class ZDXFCTcoLauncher {
	
	private final static Logger LOG = Logger.getLogger(ZDXFCTcoLauncher.class);

	/**
	 * Main-Methode der Anwendung.<br>
	 * Return-Codes:<br>
	 * <ul>
	 * <li>0: Anwendung wurde ohne Fehler beendet</li>
	 * <li>2: Anwendung wurde durch einen Fehler beendet</li>
	 * </ul>
	 * 
	 * @param args Uebergabeparameter (siehe Beschreibung der Klasse)
	 */
	public static void main(String[] args) {
		ZDXFCTcoMain main = null;

		try {
			LOG.fatal("Starting ZDXFCTcoMain Version: " + ZDXFCTcoMain.VERSION);
			if (args != null && args.length >= 1 && "-demo".equalsIgnoreCase(args[0])) {
				main = new ZDXFCTcoMain(true);
			} else {
				main = new ZDXFCTcoMain(false);
			}
			
			main.start();
		} catch (Throwable t) {
			LOG.error("Anwendung aufgrund eines Fehlers beendet", t);
			System.err.println("Anwendung aufgrund eines Fehlers beendet:");
			t.printStackTrace();
			System.exit(2);
		}
	}
}
